1. Field of the Invention
The present invention generally relates to performing complex searches of Web service Universal Description, Discovery and Integration(UDDI) registries using a single query request. More specifically, a UDDI Search Markup Language (USML) provides a new search format in which a plurality of queries can be dispatched to one or more UDDI registries and the results are processed according to an aggregate operator to provide a federated search result.
2. Description of the Related Art
The emergence of Web Services represents the next evolution of e-business. Web services are Internet-based, modular applications that perform a specific business task while conforming to a defined technical format. This well-described standardized technical format ensures that each of these Internet-based, modular software applications or self-contained business services will easily integrate with other services to create a complete business process. By conforming to a set of adopted standards, Web Services format allows a business to dynamically publish, discover and bind (or invoke, for a user searching the Web services) to a range of services to thereby simplify the process of creating innovative products, business processes and value chains. More information about what Web Services are how they are applied to support electronic commerce and business applications is readily available on the Internet itself at, for example, www-3.ibm.com/software/solutions/webservices.
Exploring efficiently an appropriate business application published as a Web Service in the UDDI registry is a critical issue. Searches for such an application should ideally be effective in terms of time and uniform in terms of interfaces.
Information that describes Web Services are published in public or private registries, called Universal Description, Discovery and Integration (UDDI) registries. The design of UDDI allows enterprises that own Web-Service-enabled applications to publish data about themselves and their services and to voluntarily provide categorization codes on their function. By providing this information, UDDI implements a simplified form of searching for those interested in locating a particular service in which to fulfill an application process. Without categorization, and its ability to associate services to a well-known industry, product or geography, locating data within the UDDI registry would prove to be too difficult.
The conventional UDDI search is focused on single search criteria such as: business name, business location, business categories, business identifier, service type by name and discovery URL. A search invoker, which provides general-purpose query functions to look up UDDI registries, can locate businesses, determine what services they are offering, and interface with them electronically. However, such basic search mechanisms have distinct limitations as described below and are insufficient to support dynamic and rigorous use by applications.
First, general-purpose basic searches of UDDI registries may not yield meaningful results. With a projected near-term population of thousands to a million distinct entities, it is unlikely that such a basic search will yield a result set that is manageable. It is crucial to come up with an efficient search engine for narrowing down to the desired Web Services.
Second, since Web Services are registered to a specific category in UDDI registries, only searches that specify the exact category or categories will find results. However, such specific search criteria may not be known to the search invoker ahead of time. Extending search criteria to include complex logic, to more effectively search a targeted UDDI registry and which will yield the desired results, is an important requirement.
Additionally, all existing UDDI search engines only support one single UDDI registry. For example, Microsoft's UDDI search technology just allows users to search its UDDI registry using one single search criteria. A single search criterion is based on one of the following categories: business name, business location, business category, and service type by name, business identifier, discovery URL. The known taxonomy types include NAICS, UNSPSC, SIC, a geographic code (GEO), etc. The known identifier types include D-U-N-S, Thomas Registry numbers, and Tax ID.
Typically, multiple UDDI registries, public and private, collectively contain services that a search invoker is interested in. Currently, a search invoker must issue multiple, sequential searches on each UDDI to obtain all the possible results. Therefore, the ability to support a federated search, which aggregates the search results from multiple UDDI registries and presents them as a single report, would be quite valuable. The conventional methods also lack the ability to perform the complex search within that single registry. They cannot handle such a request which includes multiple search queries such as findBusiness, findServices and findServiceTypes.
From an e-business application developer's point of view, it is typically necessary to send a few sequential or programmed search commands to UDDI registry for information aggregation. That is to say, the information sources may include multiple UDDI registries and other searchable sources. Obviously, there is a need to provide an advanced search mechanism for Web Services to dramatically extend the current search capability, which is based on categories or key words, through its efficiency improvement and performance enhancement.
Based on the problems stated above, there is a need to extend the basic UDDI search to support searches with complex logic and multiple attributes and to aggregate results from multiple UDDI registries, which is needed by e-business applications.